package view;

/**
 * @author eversonpaulo
 */
import Utilitarios.TamanhoMaximoTextField;
import dao.AssuntoDAO;
import dao.FisicaDAO;
import dao.FuncionarioDAO;
import dao.PessoaDAO;
import dao.SetorDAO;

import java.awt.Component;
import java.awt.Cursor;
import java.awt.Font;

import java.sql.SQLException;
import java.util.ArrayList;
import static java.util.Collections.list;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import javax.swing.plaf.basic.BasicInternalFrameUI;
import javax.swing.table.DefaultTableModel;
import model.Assunto;
import model.Fisica;
import model.Funcionario;
import model.Pessoa;
import model.Setor;

//import net.sf.jasperreports.engine.JRException;
public class frameFuncionario extends javax.swing.JInternalFrame {

    private DefaultTableModel modelo = new DefaultTableModel() {
        public boolean isCellEditable(int row, int column) {
            return false;
        }
    };
    private DefaultComboBoxModel modeljcomboboxSetor = new DefaultComboBoxModel() {
        public boolean isCellEditable(int row, int column) {
            return false;
        }
    };
    String opcao = "";
    public int inutil;
    public List<Funcionario> fucs = new ArrayList<Funcionario>();

    public frameFuncionario() {
        initComponents();
        liberarCampos(false);
        limpaCampos();
        tabela();
        montaListaSetor();
        //Esconde os jPanel's da especificação de Pessoa
        //Tira as barras de todos os lados da janela
        ((BasicInternalFrameUI) this.getUI()).setNorthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setSouthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setWestPane(null);
        ((BasicInternalFrameUI) this.getUI()).setEastPane(null);

        //lbCodigo.setFont(new Font("Tahoma", Font.PLAIN, 11));
        exibePainelCadastro(false);
//        lbIncluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbAlterar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSalvar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbCancelar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbExcluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSair.setFont(new Font("Tahoma", Font.PLAIN, 11));
        // lbCodigo.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbRua.setFont(new Font("Tahoma", Font.PLAIN, 11));
        jtCod.setVisible(false);
        lbNome.setFont(new Font("Tahoma", Font.PLAIN, 11));

        ajusta_botoes();

        monta_jTUnidade();
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel2 = new javax.swing.JPanel();
        buttonGroupTipo = new javax.swing.ButtonGroup();
        buttonGroup2 = new javax.swing.ButtonGroup();
        btAvancar1 = new javax.swing.JButton();
        btAvancar2 = new javax.swing.JButton();
        btNovo = new javax.swing.JButton();
        btGravar = new javax.swing.JButton();
        btPrimeiro = new javax.swing.JButton();
        btAnterior = new javax.swing.JButton();
        btProximo = new javax.swing.JButton();
        btUltimo = new javax.swing.JButton();
        btEditar = new javax.swing.JButton();
        btCancelar = new javax.swing.JButton();
        btExcluir = new javax.swing.JButton();
        jPanel4 = new javax.swing.JPanel();
        lbTitulo = new javax.swing.JLabel();
        jPanelPessoa = new javax.swing.JPanel();
        jPanel6 = new javax.swing.JPanel();
        lbRua = new javax.swing.JLabel();
        jtNome = new javax.swing.JTextField();
        lbNome = new javax.swing.JLabel();
        jtMatricula = new javax.swing.JTextField();
        lbCidade = new javax.swing.JLabel();
        ftFone = new javax.swing.JFormattedTextField();
        lbTelefone = new javax.swing.JLabel();
        jtCPF = new javax.swing.JFormattedTextField();
        jPanel7 = new javax.swing.JPanel();
        jtNumero = new javax.swing.JTextField();
        lbCep1 = new javax.swing.JLabel();
        cbEstado1 = new javax.swing.JComboBox();
        lbFone1 = new javax.swing.JLabel();
        jtCidade1 = new javax.swing.JTextField();
        jtRua1 = new javax.swing.JTextField();
        lbCidade1 = new javax.swing.JLabel();
        jtBairro1 = new javax.swing.JTextField();
        lbBairro1 = new javax.swing.JLabel();
        lbRua1 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jtCep2 = new javax.swing.JFormattedTextField();
        jPanel8 = new javax.swing.JPanel();
        cbPermissao = new javax.swing.JComboBox();
        lbFone2 = new javax.swing.JLabel();
        jtSENHA1 = new javax.swing.JTextField();
        lbBairro2 = new javax.swing.JLabel();
        jCSetor = new javax.swing.JComboBox();
        jLabel2 = new javax.swing.JLabel();
        jTLogin = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jtCod = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTUnidade = new javax.swing.JTable();
        btSair = new javax.swing.JButton();

        btAvancar1.setText("Avançar");
        btAvancar1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAvancar1ActionPerformed(evt);
            }
        });

        btAvancar2.setText("Avançar");
        btAvancar2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAvancar2ActionPerformed(evt);
            }
        });

        setClosable(true);
        setTitle("Gerenciamento de Funcionário");
        setToolTipText("");
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        btNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709290_Add.png"))); // NOI18N
        btNovo.setToolTipText("Inserir um novo registro");
        btNovo.setFocusable(false);
        btNovo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btNovo.setMinimumSize(new java.awt.Dimension(85, 25));
        btNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btNovoActionPerformed(evt);
            }
        });
        getContentPane().add(btNovo, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 70, -1, 40));

        btGravar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708417_Save.png"))); // NOI18N
        btGravar.setToolTipText("Salvar alterações ou uma nova inclusão do registro");
        btGravar.setFocusable(false);
        btGravar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btGravar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btGravarActionPerformed(evt);
            }
        });
        getContentPane().add(btGravar, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 70, -1, 40));

        btPrimeiro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff (2).png"))); // NOI18N
        btPrimeiro.setToolTipText("Primeiro Registro");
        btPrimeiro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btPrimeiroActionPerformed(evt);
            }
        });
        getContentPane().add(btPrimeiro, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 550, -1, -1));

        btAnterior.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play (2).png"))); // NOI18N
        btAnterior.setToolTipText("Registro Anterior");
        btAnterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAnteriorActionPerformed(evt);
            }
        });
        getContentPane().add(btAnterior, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 550, -1, -1));

        btProximo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play.png"))); // NOI18N
        btProximo.setToolTipText("Próximo Registro");
        btProximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btProximoActionPerformed(evt);
            }
        });
        getContentPane().add(btProximo, new org.netbeans.lib.awtextra.AbsoluteConstraints(610, 550, -1, -1));

        btUltimo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff.png"))); // NOI18N
        btUltimo.setToolTipText("Último Registro");
        btUltimo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btUltimoActionPerformed(evt);
            }
        });
        getContentPane().add(btUltimo, new org.netbeans.lib.awtextra.AbsoluteConstraints(660, 550, -1, -1));

        btEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709081_edit-file.png"))); // NOI18N
        btEditar.setToolTipText("Alterar o registro atual");
        btEditar.setFocusable(false);
        btEditar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btEditarActionPerformed(evt);
            }
        });
        getContentPane().add(btEditar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 70, -1, 40));

        btCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708933_Redo.png"))); // NOI18N
        btCancelar.setToolTipText("Cancelar alterações ou a inclusão do novo registro");
        btCancelar.setFocusable(false);
        btCancelar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCancelarActionPerformed(evt);
            }
        });
        getContentPane().add(btCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 70, -1, 40));

        btExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708641_Delete.png"))); // NOI18N
        btExcluir.setToolTipText("Excluir o registro atual");
        btExcluir.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btExcluir.setFocusable(false);
        btExcluir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btExcluirActionPerformed(evt);
            }
        });
        getContentPane().add(btExcluir, new org.netbeans.lib.awtextra.AbsoluteConstraints(420, 70, -1, 40));
        getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 0, 20, 550));

        lbTitulo.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        lbTitulo.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbTitulo.setText("Funcionário");
        getContentPane().add(lbTitulo, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 10, 650, 30));

        jPanelPessoa.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Funcionário"));
        jPanelPessoa.setName("Pessoa Física"); // NOI18N
        jPanelPessoa.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Dados Pessoais"));
        jPanel6.setToolTipText("Dados Básicos dos Funcionários");
        jPanel6.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        lbRua.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbRua.setText("CPF");
        lbRua.setToolTipText("CPF");
        jPanel6.add(lbRua, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 70, 80, 20));

        jtNome.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtNome.setToolTipText("Nome da pessoa");
        jtNome.setAutoscrolls(false);
        jtNome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNomeActionPerformed(evt);
            }
        });
        jPanel6.add(jtNome, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 40, 330, -1));
        jtNome.getAccessibleContext().setAccessibleDescription("Nome do Funcionário");

        lbNome.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNome.setText("Nome");
        lbNome.setToolTipText("Nome");
        jPanel6.add(lbNome, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 20, 80, 20));

        jtMatricula.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        jtMatricula.setToolTipText("Número da Matricula");
        jtMatricula.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtMatriculaActionPerformed(evt);
            }
        });
        jtMatricula.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtMatriculaKeyTyped(evt);
            }
        });
        jPanel6.add(jtMatricula, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 90, 140, -1));
        jtMatricula.getAccessibleContext().setAccessibleName("");
        jtMatricula.getAccessibleContext().setAccessibleDescription("Matricula do Funcionário");

        lbCidade.setText("Matrícula:");
        lbCidade.setToolTipText("Matricula");
        jPanel6.add(lbCidade, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 70, -1, 20));

        try {
            ftFone.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)-####-####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        ftFone.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        ftFone.setToolTipText("Número do Telefone 1");
        ftFone.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ftFoneActionPerformed(evt);
            }
        });
        ftFone.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                ftFoneKeyTyped(evt);
            }
        });
        jPanel6.add(ftFone, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 40, 130, -1));
        ftFone.getAccessibleContext().setAccessibleDescription("Número do Telefone ");

        lbTelefone.setText("Telefone:");
        lbTelefone.setToolTipText("Telefone");
        jPanel6.add(lbTelefone, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 20, -1, 20));

        try {
            jtCPF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###.###.###-##")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        jtCPF.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        jtCPF.setToolTipText("Número do CPF");
        jtCPF.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtCPFActionPerformed(evt);
            }
        });
        jtCPF.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jtCPFFocusLost(evt);
            }
        });
        jtCPF.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtCPFKeyTyped(evt);
            }
        });
        jPanel6.add(jtCPF, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 90, 130, -1));

        jPanelPessoa.add(jPanel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 20, 630, 130));
        jPanel6.getAccessibleContext().setAccessibleName("Usuário");

        jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Endereço"));
        jPanel7.setToolTipText("Dados de Endereço dos Funcionários");
        jPanel7.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jtNumero.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        jtNumero.setToolTipText("Número da casa");
        jtNumero.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtNumeroKeyTyped(evt);
            }
        });
        jPanel7.add(jtNumero, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 90, 110, -1));
        jtNumero.getAccessibleContext().setAccessibleDescription("Numero da Residência");

        lbCep1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbCep1.setText("CEP:");
        lbCep1.setToolTipText("CEP");
        jPanel7.add(lbCep1, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 20, 40, 20));

        cbEstado1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO", "MA", "MG", "MS", "MT", "PA", "PB", "PE", "PI", "PR", "RJ", "RN", "RO", "RR", "RS", "SC", "SE", "SP", "TO" }));
        cbEstado1.setSelectedIndex(-1);
        cbEstado1.setToolTipText("Lista de Estados");
        cbEstado1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cbEstado1ActionPerformed(evt);
            }
        });
        jPanel7.add(cbEstado1, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 90, 80, -1));
        cbEstado1.getAccessibleContext().setAccessibleDescription("Estado");

        lbFone1.setText("UF:");
        lbFone1.setToolTipText("Estados");
        jPanel7.add(lbFone1, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 70, -1, 20));

        jtCidade1.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtCidade1.setToolTipText("Nome da Cidade");
        jtCidade1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtCidade1ActionPerformed(evt);
            }
        });
        jPanel7.add(jtCidade1, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 90, 140, -1));
        jtCidade1.getAccessibleContext().setAccessibleDescription("Cidade");

        jtRua1.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtRua1.setToolTipText("Nome da rua");
        jtRua1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtRua1ActionPerformed(evt);
            }
        });
        jPanel7.add(jtRua1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 40, 330, -1));
        jtRua1.getAccessibleContext().setAccessibleDescription("Rua");

        lbCidade1.setText("Cidade:");
        lbCidade1.setToolTipText("Cidade");
        jPanel7.add(lbCidade1, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 70, -1, 20));

        jtBairro1.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtBairro1.setToolTipText("Nome do Bairro");
        jtBairro1.setAutoscrolls(false);
        jtBairro1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtBairro1ActionPerformed(evt);
            }
        });
        jPanel7.add(jtBairro1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 90, 140, -1));
        jtBairro1.getAccessibleContext().setAccessibleDescription("Bairro");

        lbBairro1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbBairro1.setText("Bairro:");
        lbBairro1.setToolTipText("Bairro");
        jPanel7.add(lbBairro1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 70, 80, 20));

        lbRua1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbRua1.setText("Rua:");
        lbRua1.setToolTipText("Rua");
        jPanel7.add(lbRua1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 20, 80, 20));

        jLabel1.setText("Número:");
        jLabel1.setToolTipText("Número");
        jPanel7.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 70, -1, -1));

        try {
            jtCep2.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("#####-###")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        jtCep2.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        jtCep2.setToolTipText("Número do CEP");
        jtCep2.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jtCep2FocusLost(evt);
            }
        });
        jtCep2.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtCep2KeyTyped(evt);
            }
        });
        jPanel7.add(jtCep2, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 40, 110, -1));

        jPanelPessoa.add(jPanel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 150, 630, 130));

        jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Usuário"));
        jPanel8.setToolTipText("Dados para Login do Funcionário");
        jPanel8.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        cbPermissao.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Nível 1", "Nível 2", "Nível 3", "Nível 4" }));
        cbPermissao.setToolTipText("Níveis de Permissão para o Funcionário");
        cbPermissao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cbPermissaoActionPerformed(evt);
            }
        });
        jPanel8.add(cbPermissao, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 90, 130, -1));
        cbPermissao.getAccessibleContext().setAccessibleDescription("Permissão do Usuário");

        lbFone2.setText("Permissão");
        lbFone2.setToolTipText("Permissão");
        jPanel8.add(lbFone2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 70, -1, 20));

        jtSENHA1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        jtSENHA1.setToolTipText("Senha do Funcionário");
        jtSENHA1.setAutoscrolls(false);
        jtSENHA1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtSENHA1ActionPerformed(evt);
            }
        });
        jPanel8.add(jtSENHA1, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 40, 140, -1));
        jtSENHA1.getAccessibleContext().setAccessibleDescription("Senha para Acesso");

        lbBairro2.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbBairro2.setText("Senha:");
        lbBairro2.setToolTipText("Senha");
        jPanel8.add(lbBairro2, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 20, 80, 20));

        jCSetor.setToolTipText("Setor do Funcionário");
        jPanel8.add(jCSetor, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 90, 220, -1));

        jLabel2.setText("Setor:");
        jLabel2.setToolTipText("Setor");
        jPanel8.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 70, -1, -1));

        jTLogin.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jTLogin.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTLoginActionPerformed(evt);
            }
        });
        jPanel8.add(jTLogin, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 40, 150, -1));

        jLabel3.setText("Login:");
        jPanel8.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 20, -1, -1));

        jPanelPessoa.add(jPanel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 280, 630, 120));

        jtCod.setEditable(false);
        jtCod.setBackground(new java.awt.Color(204, 204, 204));
        jtCod.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jtCod.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        jtCod.setToolTipText("Código do Setor");
        jtCod.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jtCod.setDisabledTextColor(new java.awt.Color(204, 204, 204));
        jtCod.setFocusable(false);
        jtCod.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtCodActionPerformed(evt);
            }
        });
        jPanelPessoa.add(jtCod, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 10, 60, -1));

        getContentPane().add(jPanelPessoa, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 130, 650, 410));
        jPanelPessoa.getAccessibleContext().setAccessibleName("Pessoa Física");

        jTUnidade.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        jTUnidade.setToolTipText("Registro Cadastrados");
        jTUnidade.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTUnidadeMouseClicked(evt);
            }
        });
        jTUnidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTUnidadeKeyReleased(evt);
            }
        });
        jScrollPane1.setViewportView(jTUnidade);

        getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 130, 640, 410));

        btSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/logout_user_login_account-3222.png"))); // NOI18N
        btSair.setToolTipText("Fechar o Gerenciamento de Funcionário");
        btSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSairActionPerformed(evt);
            }
        });
        getContentPane().add(btSair, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 600, -1, -1));
        btSair.getAccessibleContext().setAccessibleDescription("Fechar");

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btPrimeiroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btPrimeiroActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

        btProximo.setEnabled(true);
        btUltimo.setEnabled(true);
        btPrimeiro.setEnabled(false);
        btAnterior.setEnabled(false);
    }//GEN-LAST:event_btPrimeiroActionPerformed

    private void btAnteriorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAnteriorActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow() - 1;
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        if ((linhaAtual - 1) < 0) {
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
        } else {
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);
        }
    }//GEN-LAST:event_btAnteriorActionPerformed

    private void btProximoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btProximoActionPerformed
        int linhaAtual, qdeLinhas;
        linhaAtual = jTUnidade.getSelectedRow() + 1;
        qdeLinhas = jTUnidade.getRowCount();

        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        if ((linhaAtual + 1) == qdeLinhas) {
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        } else {
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
        }
    }//GEN-LAST:event_btProximoActionPerformed

    private void btUltimoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btUltimoActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            linhaAtual = jTUnidade.getRowCount() - 1;
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        btProximo.setEnabled(false);
        btUltimo.setEnabled(false);
        btPrimeiro.setEnabled(true);
        btAnterior.setEnabled(true);
    }//GEN-LAST:event_btUltimoActionPerformed

    private void btNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btNovoActionPerformed
        novoRegistro();
        btSair.setVisible(false);
    }//GEN-LAST:event_btNovoActionPerformed

    private void btEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btEditarActionPerformed
        alteraRegistro();
        btSair.setVisible(false);
    }//GEN-LAST:event_btEditarActionPerformed

    private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btCancelarActionPerformed
        cancelaRegistro();
        btSair.setVisible(true);
    }//GEN-LAST:event_btCancelarActionPerformed

    private void btExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btExcluirActionPerformed
        excluiRegistro();
        btSair.setVisible(true);
    }//GEN-LAST:event_btExcluirActionPerformed

    private void jTUnidadeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTUnidadeMouseClicked
        if (opcao.equals("")) {
            int linhaAtual;
            linhaAtual = jTUnidade.getSelectedRow();
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }
    }//GEN-LAST:event_jTUnidadeMouseClicked

    private void jTUnidadeKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTUnidadeKeyReleased
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow();
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        Atribui_Campos();
    }//GEN-LAST:event_jTUnidadeKeyReleased

    private void jtNomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNomeActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNomeActionPerformed

    private void jtCodActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtCodActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtCodActionPerformed

    private void jtMatriculaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtMatriculaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtMatriculaActionPerformed

    private void ftFoneActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ftFoneActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_ftFoneActionPerformed

    private void btAvancar1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAvancar1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btAvancar1ActionPerformed

    private void btAvancar2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAvancar2ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btAvancar2ActionPerformed

    private void cbEstado1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbEstado1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_cbEstado1ActionPerformed

    private void jtCidade1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtCidade1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtCidade1ActionPerformed

    private void jtRua1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtRua1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtRua1ActionPerformed

    private void jtBairro1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtBairro1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtBairro1ActionPerformed

    private void cbPermissaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbPermissaoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_cbPermissaoActionPerformed

    private void jtSENHA1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtSENHA1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtSENHA1ActionPerformed

    private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btGravarActionPerformed
        gravaRegistroFuncionario();
    }//GEN-LAST:event_btGravarActionPerformed

    private void jtCPFFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jtCPFFocusLost
        Fisica f = new Fisica();
        FisicaDAO fdao = new FisicaDAO();
        List<Fisica> fl = new ArrayList<Fisica>();

        if (!opcao.equals("")) {
            if (!(jtCPF.getText().equals("   .   .   -  "))) {
                if (f.validarCPF(jtCPF.getText().replace(".", "").replace("-", "")) == false) {
                    JOptionPane.showMessageDialog(null, "Número de CPF: " + jtCPF.getText() + " - Invalido. Verifique!!!");
                    jtCPF.setText(null);
                    jtCPF.setText("   .   .   -  ");
                    jtCPF.requestFocus();
                    return;
                }

                //fl = fdao.pesquisaFornecedorCPF(ftCPF.getText());
                if (fl.isEmpty()) {
                } else {
                    JOptionPane.showMessageDialog(null, "Este CPF já Cadastrado no Sistema. Favor Verifique!!!");
                    requestFocus();
                    return;
                }
                /* if (f.jaTemCadastro(ftCPF.getText().replace( ".", "" ).replace( "-", "" )) == true) {
                 JOptionPane.showMessageDialog(null,"Este CPF já Cadastrado no Sistema. Favor Verifique!!!");
                 ftCPF.setText(null);
                 ftCPF.setText("   .   .   -  ");
                 ftCPF.requestFocus();
                 return;
                 }*/
            }
        }
    }//GEN-LAST:event_jtCPFFocusLost

    private void jtCPFActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtCPFActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtCPFActionPerformed

    private void jtCPFKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtCPFKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtCPFKeyTyped

    private void jtCep2FocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jtCep2FocusLost

    }//GEN-LAST:event_jtCep2FocusLost

    private void jtNumeroKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumeroKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtNumeroKeyTyped

    private void jtCep2KeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtCep2KeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtCep2KeyTyped

    private void jtMatriculaKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtMatriculaKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtMatriculaKeyTyped

    private void ftFoneKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_ftFoneKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_ftFoneKeyTyped

    private void btSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSairActionPerformed
        saiTela();
    }//GEN-LAST:event_btSairActionPerformed

    private void jTLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTLoginActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTLoginActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btAnterior;
    private javax.swing.JButton btAvancar1;
    private javax.swing.JButton btAvancar2;
    private javax.swing.JButton btCancelar;
    private javax.swing.JButton btEditar;
    private javax.swing.JButton btExcluir;
    private javax.swing.JButton btGravar;
    private javax.swing.JButton btNovo;
    private javax.swing.JButton btPrimeiro;
    private javax.swing.JButton btProximo;
    private javax.swing.JButton btSair;
    private javax.swing.JButton btUltimo;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.ButtonGroup buttonGroupTipo;
    private javax.swing.JComboBox cbEstado1;
    private javax.swing.JComboBox cbPermissao;
    private javax.swing.JFormattedTextField ftFone;
    private javax.swing.JComboBox jCSetor;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanelPessoa;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTLogin;
    private javax.swing.JTable jTUnidade;
    private javax.swing.JTextField jtBairro1;
    private javax.swing.JFormattedTextField jtCPF;
    private javax.swing.JFormattedTextField jtCep2;
    private javax.swing.JTextField jtCidade1;
    private javax.swing.JTextField jtCod;
    private javax.swing.JTextField jtMatricula;
    private javax.swing.JTextField jtNome;
    private javax.swing.JTextField jtNumero;
    private javax.swing.JTextField jtRua1;
    private javax.swing.JTextField jtSENHA1;
    private javax.swing.JLabel lbBairro1;
    private javax.swing.JLabel lbBairro2;
    private javax.swing.JLabel lbCep1;
    private javax.swing.JLabel lbCidade;
    private javax.swing.JLabel lbCidade1;
    private javax.swing.JLabel lbFone1;
    private javax.swing.JLabel lbFone2;
    private javax.swing.JLabel lbNome;
    private javax.swing.JLabel lbRua;
    private javax.swing.JLabel lbRua1;
    private javax.swing.JLabel lbTelefone;
    private javax.swing.JLabel lbTitulo;
    // End of variables declaration//GEN-END:variables

    public void saiTela() {
        frameFuncionario.this.dispose();
        TesteInternal ti = new TesteInternal();

    }

    public void ajustaCursor(int tipo) {
        Cursor cursor;

        if (tipo == 0) {
            cursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);
        } else {
            cursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
        }

        setCursor(cursor);

    }

    public void ajusta_botoes() {
        if (opcao.equals("")) {
            //btVoltar1.setEnabled(false);
            btCancelar.setEnabled(false);
            btNovo.setEnabled(true);
            btEditar.setEnabled(true);
            btExcluir.setEnabled(true);

//            lbSalvar.setEnabled(false);
//            lbCancelar.setEnabled(false);
//            lbIncluir.setEnabled(true);
//            lbAlterar.setEnabled(true);
//            lbExcluir.setEnabled(true);
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);

        } else {
            //btVoltar1.setEnabled(true);
            btCancelar.setEnabled(true);
            btNovo.setEnabled(false);
            btEditar.setEnabled(false);
            btExcluir.setEnabled(false);

//            lbSalvar.setEnabled(true);
//            lbCancelar.setEnabled(true);
//            lbIncluir.setEnabled(false);
//            lbAlterar.setEnabled(false);
//            lbExcluir.setEnabled(false);
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        }
    }

    public void tabela() {
        jTUnidade.setModel(modelo);

        modelo.addColumn("Código");
        modelo.addColumn("Nome");
        modelo.addColumn("Login");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");

        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(25);
        jTUnidade.getColumnModel().getColumn(1).setPreferredWidth(25);
        jTUnidade.getColumnModel().getColumn(2).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(3).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(4).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(5).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(6).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(7).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(8).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(7).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(8).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(9).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(10).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(11).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(12).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(13).setPreferredWidth(80);
        jTUnidade.getColumnModel().getColumn(14).setPreferredWidth(80);
//codigo para esconder uma coluna na JTable
        //Esconder alguma coluna: No Caso a Primeira Coluna
        jTUnidade.getColumnModel().getColumn(0).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(0).setMaxWidth(0);

//        jTUnidade.getColumnModel().getColumn(1).setMinWidth(0);
//        jTUnidade.getColumnModel().getColumn(1).setPreferredWidth(0);
//        jTUnidade.getColumnModel().getColumn(1).setMaxWidth(0);
//
//        jTUnidade.getColumnModel().getColumn(2).setMinWidth(0);
//        jTUnidade.getColumnModel().getColumn(2).setPreferredWidth(0);
//        jTUnidade.getColumnModel().getColumn(2).setMaxWidth(0);
        jTUnidade.getColumnModel().getColumn(3).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(3).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(3).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(4).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(4).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(4).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(5).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(5).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(5).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(6).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(6).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(6).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(7).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(7).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(7).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(8).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(8).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(8).setMaxWidth(0);
        jTUnidade.getColumnModel().getColumn(9).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(9).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(9).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(10).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(10).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(10).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(11).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(11).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(11).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(12).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(12).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(12).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(13).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(13).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(13).setMaxWidth(0);
        jTUnidade.getColumnModel().getColumn(14).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(14).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(14).setMaxWidth(0);
    }

    private void monta_jTUnidade() {
//      Fachada f = new Fachada();

        limpaCampos();

        FuncionarioDAO udao = new FuncionarioDAO();

        ArrayList<Funcionario> lista = new ArrayList<Funcionario>();

        modelo.setNumRows(0);
        lista = udao.findAll2();
        fucs = lista;
        for (int i = 0; i < lista.size(); i++) {
            modelo.addRow(new Object[]{lista.get(i).getId_Pessoa(),
                lista.get(i).getNome(),
                lista.get(i).getLogin(),
                lista.get(i).getCpf(),
                lista.get(i).getMatricula(),
                lista.get(i).getEndereco(),
                lista.get(i).getCep(),
                lista.get(i).getBairro(),
                lista.get(i).getCidade(),
                lista.get(i).getNumero(),
                lista.get(i).getUf(),
                lista.get(i).getPermissao(),
                lista.get(i).getFone(),
                lista.get(i).getSenha(),
                lista.get(i).getSetor()});
        }
    }

    private void Atribui_Campos() {
        jtCod.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 0).toString());
        jtNome.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 1));
        ftFone.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 12));
        jtCPF.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 3));
        jtMatricula.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 4));
        jtRua1.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 5));
        jtCep2.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 6));
        jtBairro1.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 7));
        jtCidade1.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 8));
        jtNumero.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 9).toString());
        cbEstado1.getModel().setSelectedItem(jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 10));
        cbPermissao.getModel().setSelectedItem(jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 11));
        jTLogin.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 2));
        jtSENHA1.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 13));
        jCSetor.getModel().setSelectedItem(jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 14));

    }

    //Limpa os campos, para evitar de deletar um item e ele ainda ficar atribuido no panel
    public void limpaCampos() {
        jtCod.setText("");
        jtNome.setText("");
        ftFone.setText("");
        jtCPF.setText("");
        jtMatricula.setText("");
        jtRua1.setText("");
        jtCep2.setText("");
        jtBairro1.setText("");
        jtCidade1.setText("");
        jtNumero.setText("");
        cbEstado1.setSelectedIndex(-1);
        cbPermissao.setSelectedIndex(-1);
        jtSENHA1.setText("");
        jCSetor.setSelectedIndex(-1);
    }

    private void novoRegistro() {
        liberarCampos(true);
        int linhaAtual;
        exibePainelCadastro(true);
        linhaAtual = jTUnidade.getRowCount() - 1;
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        opcao = "incluir";
        jTUnidade.setEnabled(false);
        ajusta_botoes();
        //Deixar os registros em branco
        jtCod.setText(null);
        jtSENHA1.setText(null);
        jtNumero.setText(null);
        jtNome.setText(null);
        jtCPF.setText(null);
        jtCep2.setText(null);
        ftFone.setText(null);
        jtBairro1.setText(null);
        jtCidade1.setText(null);
        jtMatricula.setText(null);
        jtRua1.setText(null);
        jTLogin.setText(null);
        cbEstado1.setSelectedIndex(-1);
        cbPermissao.setSelectedIndex(-1);
    }

    private boolean validarCampos() {

        if ((jtNome.getText().trim().equals("")) || (jtNome.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo Nome não pode ficar em branco. Verifique!!!");
            jtNome.requestFocus();
            return false;
        } else {
            if ((jtMatricula.getText().trim().equals("")) || (jtMatricula.getText() == null)) {
                JOptionPane.showMessageDialog(null, "O campo Matricula  não pode ficar em branco. Verifique!!!");
                jtMatricula.requestFocus();
                return false;
            } else {
                if ((jtCPF.getText().trim().equals("")) || (jtCPF.getText() == null)) {
                    JOptionPane.showMessageDialog(null, "O campo CPF não pode ficar em branco. Verifique!!!");
                    jtCPF.requestFocus();
                    return false;
                } else {
                    if ((jtSENHA1.getText().trim().equals("")) || (jtSENHA1.getText() == null)) {
                        JOptionPane.showMessageDialog(null, "O campo Senha não pode ficar em branco. Verifique!!!");
                        jtSENHA1.requestFocus();
                        return false;
                    } else {
                        if ((jtBairro1.getText().trim().equals("")) || (jtBairro1.getText() == null)) {
                            JOptionPane.showMessageDialog(null, "O campo Bairro não pode ficar em branco. Verifique!!!");
                            jtBairro1.requestFocus();
                            return false;
                        } else {
                            if ((jtNumero.getText().trim().equals("")) || (jtNumero.getText() == null)) {
                                JOptionPane.showMessageDialog(null, "O campo CEP não pode ficar em branco. Verifique!!!");
                                jtNumero.requestFocus();
                                return false;
                            } else {
                                if ((ftFone.getText().trim().equals("")) || (ftFone.getText() == null)) {
                                    JOptionPane.showMessageDialog(null, "O campo Telefone não pode ficar em branco. Verifique!!!");
                                    ftFone.requestFocus();
                                    return false;
                                } else {
                                    if ((jtRua1.getText().trim().equals("")) || (jtRua1.getText() == null)) {
                                        JOptionPane.showMessageDialog(null, "O campo Rua não pode ficar em branco. Verifique!!!");
                                        jtRua1.requestFocus();
                                        return false;
                                    } else {
                                        if ((jtCidade1.getText().trim().equals("")) || (jtCidade1.getText() == null)) {
                                            JOptionPane.showMessageDialog(null, "O campo Cidade não pode ficar em branco. Verifique!!!");
                                            jtCidade1.requestFocus();
                                            return false;
                                        } else {
                                            if ((cbEstado1.getSelectedItem() == null)) {
                                                JOptionPane.showMessageDialog(null, "O campo Estado não pode ficar em branco. Verifique!!!");
                                                cbEstado1.requestFocus();
                                                return false;
                                            } else {
                                                if ((cbPermissao.getSelectedItem() == null)) {
                                                    JOptionPane.showMessageDialog(null, "O campo Permissao não pode ficar em branco. Verifique!!!");
                                                    cbPermissao.requestFocus();
                                                    return false;
                                                } else {
                                                    if ((jtNumero.getText().trim().equals("")) || (jtNumero.getText() == null)) {
                                                        JOptionPane.showMessageDialog(null, "O campo Numero não pode ficar em branco. Verifique!!!");
                                                        jtNumero.requestFocus();
                                                        return false;
                                                    } else {
                                                        if (jCSetor.getSelectedItem() == null) {
                                                            JOptionPane.showMessageDialog(null, "O campo SETOR tem que ser selecionado!");
                                                            jCSetor.requestFocus();
                                                            return false;
                                                        }

                                                    }
                                                }
                                            }
                                        }

                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        for (Funcionario f : fucs) {
            if (f.getNome().equals(jtNome.getText())) {
                JOptionPane.showMessageDialog(null, "O campo NOME já existe!");
                jtNome.requestFocus();
                return false;
            } else if (f.getCpf().equals(jtCPF.getText())) {
                JOptionPane.showMessageDialog(null, "CPF já cadastrado!");
                jtCPF.requestFocus();
                return false;
            }
        }

        return true;
    }

    private void alteraRegistro() {
        if (!(jtCod.getText().equals(""))) {
            liberarCampos(true);
            exibePainelCadastro(true);
            opcao = "alterar";
            jTUnidade.setEnabled(false);
            ajusta_botoes();

            jtSENHA1.setEditable(true);
            jtNumero.setEditable(true);
            jtSENHA1.requestFocus();
        }
    }

    public void liberarCampos(boolean val) {
        jtNumero.setEditable(val);
        jtNome.setEditable(val);
        jtCPF.setEditable(val);
        jtSENHA1.setEditable(val);
    }

    //Grava o registro da Pessoa Funcionario
    private void gravaRegistroFuncionario() {

        String mens = "";
        int valor = 0;
        Funcionario f = new Funcionario();

        FuncionarioDAO fdao = new FuncionarioDAO();
        List<Funcionario> funcs = new ArrayList<Funcionario>();

        while (validarCampos() == true) {
            Setor set = (Setor) jCSetor.getSelectedItem();
            f.setSetor(set);

            f.setNome(jtNome.getText());
            //Setando a super classe Pessoa

            f.setLogin(jTLogin.getText());
            f.setFone(ftFone.getText());
            f.setMatricula(jtMatricula.getText());
            f.setCpf(jtCPF.getText());

            f.setEndereco(jtRua1.getText());
            f.setBairro(jtBairro1.getText());
            f.setCep(jtCep2.getText());
            f.setCidade(jtMatricula.getText());
            f.setUf(cbEstado1.getSelectedItem().toString());
            f.setNumero(Integer.parseInt(jtNumero.getText()));
            //Setando a subclasse Funcionario
            f.setSenha(jtSENHA1.getText());
            f.setPermissao(cbPermissao.getSelectedItem().toString());

            if (opcao.equals("incluir")) {
                fdao.incluir(f);
                valor = 1;
                exibePainelCadastro(false);
                mens = "Registro Gravado com Sucesso!!!";
            } else if (opcao.equals("alterar")) {
                f.setId_Pessoa(Integer.parseInt(jtCod.getText()));
                fdao.alterar(f);
                valor = 1;
                exibePainelCadastro(false);
                mens = "Registro Alterado com Sucesso!!!";
            }

            if (valor > 0) {
                //JOptionPane.showMessageDialog(null,mens);
            } else {
                JOptionPane.showMessageDialog(null, "Não foi possivel " + opcao + " o registro. Verifique!!!");
                int linhaAtual;
                linhaAtual = jTUnidade.getRowCount();
                if (linhaAtual > 0) {
                    jTUnidade.changeSelection(0, 0, false, false);
                    Atribui_Campos();
                }
            }

            opcao = "";
            jTUnidade.setEnabled(true);
            jtCod.setEditable(false);
            monta_jTUnidade();
            ajusta_botoes();
            liberarCampos(false);
            break;
        }

    }

    private void cancelaRegistro() {
        liberarCampos(false);
        int linhaAtual;
        exibePainelCadastro(false);
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

        opcao = "";
        jtCod.setEditable(false);
        jTUnidade.setEnabled(true);
        ajusta_botoes();
    }

    private void excluiRegistro() {
        int valor = 0;

        FuncionarioDAO fdao = new FuncionarioDAO();
        Funcionario f = new Funcionario();
        PessoaDAO pdao = new PessoaDAO();
        Pessoa p = new Pessoa();
        f.setId_Pessoa(Integer.parseInt(jtCod.getText()));
        p.setId_Pessoa(f.getId_Pessoa());
        String nome = "Tem Certeza em Deletar Este Registro de Setor?  a- " + jtNome.getText();
        int opc = JOptionPane.showConfirmDialog(null, nome, "Exclusão", JOptionPane.YES_NO_OPTION);

        if (opc == JOptionPane.YES_OPTION) {
            //    fdao.remover2(f);
            pdao.remover2(p);

            valor = 1;

            if (valor > 0) {
                JOptionPane.showMessageDialog(null, "Registro excluido com sucesso!!!");
            } else {
                JOptionPane.showMessageDialog(null, "Erro na Exclusão - Verifique!!!");
            }
        }
        monta_jTUnidade();
        cancelaRegistro();
    }

    private void exibePainelCadastro(boolean val) {
        //organiza os paineis
        jPanelPessoa.setVisible(val);
        //painel da tabela
        jScrollPane1.setVisible(!val); //organiza os botões
        btNovo.setVisible(!val);
        btEditar.setVisible(!val);
        btExcluir.setVisible(!val);
        btAnterior.setVisible(!val);
        btPrimeiro.setVisible(!val);
        btProximo.setVisible(!val);
        btUltimo.setVisible(!val);

    }

    private void montaListaSetor() {
        modeljcomboboxSetor.removeAllElements();
        SetorDAO sdao = new SetorDAO();

        ArrayList<Setor> lista3 = new ArrayList<Setor>();
        lista3 = sdao.findAll2();

        for (Setor s : lista3) {
            modeljcomboboxSetor.addElement(s);
        }

        jCSetor.setModel(modeljcomboboxSetor);
    }

}
